home *** CD-ROM | disk | FTP | other *** search
/ Nikkei Mac 20 / NIKKEI-MAC-CD-VOL-20-1998-12.ISO.7z / NIKKEI-MAC-CD-VOL-20-1998-12.ISO / オンラインソフト / 9.ウェブ作成ツール / HTML Grinder v3.35.sit / HTML Grinder v3.35 / HTML Grinder / stack_-1.xml < prev   
Extensible Markup Language  |  1998-12-23  |  28KB  |  20 lines

  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <!DOCTYPE stack PUBLIC "-//Apple, Inc.//DTD stack V 2.0//EN" "" >
  3. <stack>
  4.     <name>in</name>
  5.     <id>-1</id>
  6.     <cardCount>1</cardCount>
  7.     <cardID>2320</cardID>
  8.     <listID>3027</listID>
  9.     <cantModify><false /></cantModify>
  10.     <cantDelete><false /></cantDelete>
  11.     <cantAbort><false /></cantAbort>
  12.     <cardSize>
  13.         <width>160</width>
  14.         <height>64</height>
  15.     </cardSize>
  16.     <script>on AppleEvent class,id,senderglobal allfiles,chimerif id is odoc thenrequest appleevent dataput it into thefilessend "loaddocs thefiles" to this cardelse pass appleEventend appleeventon loaddocs thefilesglobal chimer,allfiles,clearfieldput "" into textfilesput filefilter(thefiles) into textfilesif textfiles="WheelerNDealer" thenput "" into textfilesput true into wheelerend ifif textfiles 竕  "" thenrepeat until last line of textfiles 竕  "" or textfiles = ""delete last line of textfilesend repeatif clearfield is truethen put textfiles into allfileselse put textfiles after allfilesif length(allfiles) < 30000 thenlockall cardgo homie()put allfiles into bg fld docsunlockall cardend ifend ifif chimer is true thenif textfiles 竕  "" thenif length(allfiles) >= 30000 thenanswer "There are too many files loaded to display in the loaded documents window."&&ツャ"You will still be able to grind these files, but they will not be displayed in the Loaded Documents window and they will not be loaded after you quit the Grinder."lockall cardgo homie()put "" into bg fld docsunlockall cardend ifplay "chime" -- harpsichord tempo 1200 92 90 95end ifend ifif textfiles = "" and wheeler is not truethen answer "Warning! No files were loaded. Use the Preferences command to set a less restrictive suffix filter."end loaddocsfunction filefilter thefilesglobal grindonlysuffixed,suffixesif the number of lines in thefiles=1 and there is a stack thefilesthengo stack thefiles in new windowreturn "WheelerNDealer"end ifget windowscript("Grinding...","Loading Documents...")put "" into textfilesput "" into getdirparamsput the number of lines in thefiles into numfilesif there is a window "Loading Documents..."then set thermometer_max of window "Loading Documents..." to numfileswait 20repeat with x=1 to numfilesset cursor to busyget line x of thefilesif there is a folder it thenset i6_visible of window "Loading Documents..." to "TRUE"put "" into prammyif grindonlysuffixed is true and suffixes 竕  "" thenput undoubleHTML(suffixes) into thesuffixesrepeat with y=1 to the number of lines in thesuffixesput  quote & "N=" & line y of thesuffixes & quote & "," into prammyput "put getdir(" & quote & it &quote & "," & quote & "F+" &quote& "," & prammy & quote & "o=p" &quote & ") after textfiles" into thecommanddo thecommandend repeatelseput "put getdir(" & quote & it &quote & "," & quote & "F+" &quote& "," & prammy & quote & "o=p" &quote & ") after textfiles" into thecommanddo thecommandend ifset i6_visible of window "Loading Documents..." to "FALSE"elseif grindonlysuffixed is true and suffixes 竕  "" thenrepeat with y=1 to the number of lines in suffixesif line y of suffixes is in filename(it) AND it is not in textfiles thenput it &return after textfilesexit repeatend ifend repeatelseput it & return after textfilesend ifend ifif there is a window "Loading Documents..." thenset thermometer_value of window "Loading Documents..." to xif iconnum is 1then put 3 into iconnumelse put 1 into iconnumset i3_name of window "Loading Documents..." to "grinder"&iconnumend ifend repeatif there is a window "Loading Documents..." thenwait 20close window "Loading Documents..."end ifreturn textfilesend filefilteron processglobal allfiles,totalchangesif the enabled of cd btn 1 竕  "true"then exit processset the cantabort of this stack to falseput "0" into totalchangesif not developing() then set the lockerrordialogs to trueput the number of lines in allfiles into numfilesif numfiles is 0 thenanswer "No HTML documents have been dragged onto the HTML Grinder icon for grinding."exit processend ifget windowscript("grinding...")set thermometer_max of window "grinding..." to (numfiles*100)repeat with x=1 to numfilesset the cursor to busyput line x of allfiles into thisFileif there is no file thisfile and there is no folder thisfile thenif problem="continue" then next repeatelsebeepanswer "One or more of the files could not be found. You should probably re-drag them onto the HTML Grinder icon."&&ツャ"Do you want to continue with the files that can be found?" with "Continue" or "Cancel"if it="Cancel" thenif there is a window "grinding..."then close window "grinding..."put 0 into totalchangesexit processelse put "continue" into problemnext repeatend ifend ifif filetype(thisfile)="TEXT" thenopen file thisfileif the result 竕  "" thenif problem2="continue" then next repeatanswer "Some documents could not be opened, either because they are open in another program or because they are not text-only documents." &&ツャ"Do you want to continue with the files that can be opened?" with "Continue" or "Cancel"if it="Cancel" thenif there is a window "Grinding..."then close window "Grinding..."put 0 into totalchangesexit processelse put "continue" into problem2next repeatend ifread from file thisFile until eofput it into thecontentsclose file thisfilesend "Converter thisfile,thecontents,x" to this cardelse send "nonHTMLConverter thisfile,x" to this cardif iconnum =1then put 3 into iconnumelse put 1 into iconnumset thermometer_value of window "grinding..." to (x*100)set i3_name of window "grinding..." to "grinder"&iconnumend repeatclose window "grinding..."put "" into nothingsend "AllDone nothing" to this cardif not developing() then set the lockerrordialogs to falseend processon alldone textoglobal chimer,toolfolder,allalldonesif there is a card btn nextwheel thenget cd btn nextwheelif it is not "none" thenif there is a stack (toolfolder & it) thenput the short name of this stack after allalldonesif texto is emptythen put " -- OK" after allalldoneselse put return & texto after allalldonesput return&return after allalldonesgo stack (toolfolder & it)send process to this cardexit alldoneelse put " (Error running next wheel.)" after textoend ifend ifif chimer is true then play "chime"if allalldones is not empty thenput the short name of this stack after allalldonesif texto is emptythen put " -- OK" after allalldoneselse put return & texto after allalldonesget windowscript("ScrollingAnswer","Grinding Results",allalldones)put empty into allalldoneselseif texto is not emptythen answer textoend ifend alldoneon startupsetprefspass startupend startupon setprefsglobal RegStatus,firstTime,emailaddress,toolfolder,grindertools,allfiles,chimer,grindonlysuffixed,clearfield,suffixes,grinderversionput "3.35" into grinderversionif the optionkey is down and developing()="true"then debug checkpointelse set the cantabort of this stack to trueset the cursor to watchlockall cardput the seconds into starterput aboutgrinder() into thepictdelete char 1 of thepictdelete last char of thepictgo homie() in new windowput "grinder@matterform.com" into emailaddressset the textarrows to trueset the cursor to watchput bg fld extrascript into thescriptmaketempstack thescriptget bg fld theprefsput line 1 of it into clearfieldput line 2 of it into chimerput line 3 of it into grindonlysuffixedput line 4 to 10000 of it into suffixesput bg fld docs into allfilesgettoolfolderput theTools() into grindertoolssetmenusloadtoolsif developing() thenstart using homie()start using stack "Grinder developing tool"end ifrepeat foreverif the mouseclick or (the seconds - starter > 4) then exit repeatend repeatif there is a window thepict then close window thepicttuckwindowgetStatusif "Registered" is not in regstatusthen  registerdialogunlockall cardset the cantabort of this stack to falseif firstTime is true thenput "" into firstTimefullhelpend ifend setprefson tuckwindowget item 3 to 4 of the screenrectadd 10 to item 1 of itadd 10 to item 2 of itset the topleft of the card window to ithide card windowend tuckwindowfunction folderofthisstackput word 2 of the long name of this stack into thefiledelete char 1 of thefiledelete last char of thefilereturn folder(thefile)end folderofthisstackon maketempstack withscriptglobal tempfile,emailaddressput systemfolder() into thefolderset the itemdelimiter to ":"put item 1 of thefolder into thefolderset the itemdelimiter to ","put thefolder & ":Temporary Items:" into tempfolderif there is no folder tempfolderthen put folderofthisStack() into tempfolderput tempfolder & "Grinder Temp" into tempfileif developing() then put "D" after tempfilelockall cardif there is a file tempfilethen get deletefile(tempfile)create stack tempfileif the result 竕  "" thenanswer "Sorry! Couldn't initialize program." & return & the resultツャ&return & "Write to" && emailaddress && "for help." with "Quit"send "domenu quit hypercard" to hypercardexit to hypercardend ifsetfileflag tempfile,invisible,trueset the script of this stack to withscriptstart using stack tempfilepop cardend maketempstackfunction aboutgrinder howget windowscript("splash")if how="tilClick" thenwait until the mouse is downclose window "splash"else return word 2 of itend aboutgrinderfunction menuname inputif developing() then return input&"2"else return inputend menunameon lockall howif how="card" then push cardlock screenset the lockmessages to trueend lockallon unlockall howif how="card" then pop cardunlock screenset the lockmessages to falseend unlockallon openstackcheckclosemenupass openstackend openstackon resumestackcheckclosemenupass resumestackend resumestackon suspendstackif developing() then leavegrinderpass suspendstackend suspendstackon closestackif developing() then leavegrinderput the script of this stack into scriptoif scripto contains "-" & "- Grinder Tool 窶「" && "Loads at startup" thenif scripto contains "function" && "grinder" & "version" thenput the short name of this stack into shortstacklockall "card"go homie()put cd fld "newscript" into newscriptunlockall "card"put item 2 of fullfind(scripto,"on checkversion",false) into thestartput item 2 of fullfind(scripto,"end grinderversion",false) into theEndput newscript into line thestart to theend of scriptoset the script of this stack to scriptoanswer "The wheel 窶œ" & shortstack & "窶 is of an old version. It has now been updated to work with this version of the HTML Grinder." &ツャ" You can now re-open the wheel and use it normally." with "OK"end ifend ifpass closestackend closestackon setmenusput "About HTML Grinder..." into menuitem 1 of menu 1 with menumsg "get aboutgrinder(tilclick)"if not developing() then scrapmenusput menuname("File") into themenuif there is no menu themenu then  create menu themenuput "New Text File,Open Text File...,-,Close,Save,Save As...,-,Page Setup...,Print,-,Quit"ツャinto menu themenu with menumsgs "makenewtextfile,opentextfile,-,domenu close stack,savetext,savetext saveas,-,,printer,-,domenu quit hypercard"set the commandchar of menuitem "close" of menu themenu to Wset the commandchar of menuitem "New Text File" of menu themenu to Nset the commandchar of menuitem "Open Text File..." of menu themenu to Oset the commandchar of menuitem "Save" of menu themenu to Sset the commandchar of menuitem "print" of menu themenu to Pset the commandchar of menuitem "quit" of menu themenu to Qdisable menuitem "Save" of menu themenudisable menuitem "Save As..." of menu themenucheckclosemenuif not developing() thenrepeat 3 timesdelete last menuitem of menu editend repeatend ifput "Edit" into themenuput "-,Loaded Documents...,Preferences..." after menu themenu with menumsgs "-,loadeddocs,goprefs"set the commandchar of menuitem "Loaded Documents..." of menu themenu to Lset the commandchar of menuitem "Preferences..." of menu themenu to Yput "Tools " into themenuif there is a menu themenu then delete menu themenucreate menu themenuend setmenuson checkclosemenuset cursor to watchif the number of lines in the stacks > 1then enable menuitem "close" of menu (menuname("File"))else disable menuitem "close" of menu (menuname("File"))if the short name of this stack=the short name of homie() thendisable menuitem "Page Setup..." of menu (menuname("File"))disable menuitem "Print" of menu (menuname("File"))elseenable menuitem "Page Setup..." of menu (menuname("File"))enable menuitem "Print" of menu (menuname("File"))end ifend checkclosemenuon scrapmenusrepeat 10 timesif there is a menu " "then delete menu " "else exit repeatend repeatend scrapmenusfunction developingif the environment="development" and the short name of home 竕  "html grinder"then return trueelse return falseend developingfunction homieif developing()then return "stack"&&quote&"HTML Grinder"&quoteelse return "Home"end homieon loadToolsglobal grindertools,toolfolderset cursor to watchif grindertools = "" thenput "No Tools Loaded" into menu "tools "disable menuitem 1 of menu  "tools "elserepeat with x=1 to the number of lines in grindertoolsget line x of grindertoolssend "loadTool it" to stack (toolfolder & it)end repeatend ifend loadToolson loadtool whatput what after menu "Tools "end loadtoolfunction theToolsglobal ToolFolderif toolfolder="**None**" then return ""if developing()then put getdir(toolfolder,F,"t=STAK") into alltoolselse put getdir(toolfolder,F,"t=****") into alltoolsreturn alltoolsend thetoolsfunction folder thepathset the itemdelimiter to ":"delete last item of thepathset the itemdelimiter to ","return (thepath&":")end folderfunction filename pathnameset the itemdelimiter to ":"put the last item of pathname into thefileset the itemdelimiter to ","return thefileend filenameon getToolFolderglobal ToolFolderif the hilite of bg btn "Enable Plug-in Tools" is falsethen put "**None**" into toolfolderelseput bg fld folderpath into toolfolderif there is no folder toolfolder thenput word 2 of the long name of homie() into mypathdelete char 1 of mypathdelete last char of mypathput folder(mypath) into toolfolderput "Grinder Tools:" after toolfolderif there is a folder toolfolderthen put toolfolder into bg fld folderpathend ifrepeat foreverif there is a folder toolfolder thenexit repeatelseanswer "Couldn't find the folder that contains the plug-in tools. Do you want to try to find it?"ツャwith "No" or "Find"if it="No" thenput "**None**" into toolfolderexit getToolfolderelseanswer folder "Where is the Grinder Tools folder?"if it is not empty then put it into bg fld folderpathput it into toolfolderend ifend ifend repeatend ifend getToolFolderon opengrinder thesoftware,requiredversionglobal bundleusername,regwheels,regstatus,otherwheelsexpiredput wheelstatus(thesoftware) into thestatusput thestatus into cd fld "username"if thesoftware is "Theseus" thenanswer "This copy of Theseus is too old. You can download a standalone version of Theseus from http://www.matterform.com." with "Close"send "domenu close stack" to hypercardexit to hypercardend ifif "Demo" is in thestatus and regstatus = "Registered Wheels" thenanswer "This wheel is provided free of charge in Demo mode. If you find this wheel useful you can purchase a serial number from" &&ツャ"http://www.matterform.com/ and enter the serial number by clicking 窶彝egister窶 below." with "Register" or "Demo"if it is "Register" thenpush cardregisterdialogend ifend ifif "Expired" is in thestatus thendisable cd btn 1answer "Demo mode has expired for this wheel. You can look at this wheel but not use it." &&ツャ"You can purchase a serial number for this wheel from http://www.matterform.com/ and enter it by clicking 窶彝egister窶." ツャwith "Register" or "OK"if it is "register" thenpush cardregisterdialogend ifelse enable cd btn 1end opengrinderfunction wheelstatus thesoftwareglobal regstatus,otherwheelsexpired,regwheels,bundleusernameif regstatus = "Registered" or (regstatus = "registered wheels" AND thesoftware is in regwheels) thenreturn "Registered to" && bundleusernameelse if (regstatus = "expired" or otherwheelsexpired = "true") AND thesoftware 竕  "Find and Replace" thenreturn "Expired - Requires Serial Number"elsereturn "Unregistered Demo Copy"end ifend wheelstatuson registerdialogglobal RegStatus,toolfolder,otherwheelsexpired,regwheels,thestartdatelockall cardgo homie() in new windowhide card windowrepeat foreverif regstatus="Expired" or otherwheelsexpired="true"then get windowscript("Expired Register")else get windowscript("Please Register")put line 1 of it into thecommandput line 2 of it into theSerialput line 3 of it into theNameif thecommand="Free Demo" thenexit repeatelse if thecommand="Find & Replace" thenpop cardpop cardif there is a cd btn 1then disable cd btn 1get toolfolder&"Find and Replace"if there is a stack it thengo stack it in new windowshow card windowelseanswer "Can't locate the Find & Replace wheel. You can open this wheel by locating it in the Finder and double-clicking it." with "OK"end ifexit to hypercardelse if thecommand="Register" thenget validateNumber(theSerial,theName)if "Error" is in it thenanswer "That serial number is not valid. Please try again." with "OK"next repeatelseif it="Temporary Grinder" thensetStatus "Demo", the secondsput "" into otherwheelsexpiredanswer "The Demo period for the Grinder has been renewed. After you have had a chance to try the software in Demo Mode," &&ツャ"we hope you will choose to purchase a serial number."else if it="Wheels" thensetStatus "Registered Wheels",thestartdate,theName,theserialanswer "Thank you for registering!" &return&return& "You have registered the following wheels:"ツャ&& regwheels &"."  with "OK"elsesetStatus "Registered",thestartdate,theName,theserialanswer "Thank you for registering!" &return&return& "Be sure to save your serial number in a safe place in case you ever need to reinstall."&&ツャ"Remember you can give copies of the Grinder to friends and let them try it in Demo Mode (without your serial number). Thanks again. " with "OK"end ifexit repeatend ifend ifend repeatpop cardsend resumestack to this cardend registerdialogon getStatusglobal otherwheelsexpired,bundleusername,thestartdate--GET INFO FROM APP  FILEput cd fld "serial number" into theAppserialput cd fld "username" into bundleusernameput cd fld "status" into theAppstatusput regFile() into thePrefFile--FIGURE STARTING DATEput cd fld "startingdate" into theAppStartDateif theAppStartDate = ""then put the seconds into theAppStartDateput line 1 of thePrefFile into thefileStartDateif thefileStartDate = ""then put the seconds into thefileStartDateput the seconds into todaysDateput line 2 of thePrefFile into theFileSerialput line 3 of thePrefFile into theFileStatus--COMBINE FILE AND APP INFO INTO MASTER INFOif theAppStartDate < thefileStartDatethen put theAppStartDate into theStartDateelse put thefileStartDate into theStartDateif theFileSerial 竕  theAppSerialthen put "" into theserialelse put theFileSerial into theserialif theFileStatus="ツ " or theAppStatus="ツ "then put "Expired" into thestatuselse put "" into thestatusif theFileStatus="-" or theAppStatus="-" or thestatus = "Expired"then put "true" into otherwheelsexpiredelse put "" into otherwheelsexpiredif (theAppSerial & theFileSerial)竕 "" AND theserial="" thenif "error" is not in validatenumber(theAppSerial & theFileSerial,bundleusername)then put todaysDate into theStartDateend ifif theserial 竕  "" thenget validatenumber(theserial,bundleusername)if "error" is in it thenput "" into theserialelse if it="Wheels" thensetStatus "Registered Wheels",theStartDate,bundleUsername,theserialelsesetStatus "Registered",theStartDate,bundleUsername,theserialend ifend ifif theSerial="" thenif thestatus="Expired" thensetStatus "Expired",theStartDateelse if todaysDate - theStartDate > 2592000 thensetStatus "Expired",theStartDateelseif todaysdate < thestartdatethen put todaysDate into theStartDatesetStatus "Demo",theStartDateend ifend ifend getStatuson setStatus what, startdate, username, serialnumberglobal regStatus,bundleusername,otherwheelsexpiredput what into regStatusif "Registered" is in what thenif "wheels" is in what thenif (the seconds - startdate > 2592000) or otherwheelsexpired="true" thenput "-" into thestatusput "true" into otherwheelsexpiredelse put "" into thestatuselseput "" into thestatusend ifput username into bundleusernamelockall cardgo homie()put serialnumber into cd fld "serial number"put username into cd fld "username"put thestatus into cd fld "status"pop cardget regfile(startdate &return& serialnumber &return& thestatus)else if what="Demo" thenget regFile(startdate)put "" into bundleusernameput startDate into cd fld "startingdate"put "" into cd fld "username"put "" into cd fld "serial number"put "" into cd fld "status"else if what="Expired" thenget regFile(startdate &Return&return& "ツ ")put startDate into cd fld "startingdate"put "ツ " into cd fld "status"end ifend setstatusfunction validateNumber thenumber, thenameglobal grinderversionput unscramble(thenumber) into theDataBitsif length(theDatabits) = 4then put "0" before thedatabitsif theDataBits is "ERROR!" thenreturn "Error Format"end ifput thirtytoten(char 1 to 2 of theDataBits) into numbertypeif numbertype = 33 thenput "Temporary Grinder" into thetypeput char 3 to 5 of theDataBits into thedateput dateconverter(thedate) into thedateif thedate is not a datethen return "Error Temporary Format"convert thedate to secondsput the seconds - thedate into howlongif howlong > 604800 or howlong < 0 then -- 1 WEEKreturn "Error Temporary Expired"end ifelseput "3.3" into earliestversionput grinderversion into currentversion --put thirtytoTen(char 3 to 4 of thedatabits) / 100 into theversionif theversion < earliestVersionthen return "ERROR Number too old"else if currentversion < theversion and not developing()then return "ERROR Software too old"put char 5 of thedatabits into extrainfoif numbertype is 32 thenput "Pre-Registration Grinder" into thetypeif usernamebit(thename) <> extrainfo  thenreturn "Error Name Incorrect"end ifelse if numbertype is 31 thenput "Shrink Wrap Grinder" into thetypeif thirtytoTen(extrainfo) 竕・ 2 AND thirtytoTen(extrainfo) 竕、 15 thenput "Shrink Wrap Grinder" into thetypeelsereturn "Error Invalid Batch Number"end ifelsereturn "Error Type Incorrect"end ifend ifreturn thetypeend validateNumberfunction registerwheels extrainfoglobal regwheelsif extrainfo="1a" thenput "Find and Replace, Index Builder, Sequential Linker, Altifier" into regwheelsreturn "Wheels"elsereturn "Error Invalid Wheel Package"end ifend registerwheelsfunction unscramble serialnumberwithdashesput "" into serialnumber--CHECK FOR DASHESget char 5  of serialnumberwithdashes && char 10 of serialnumberwithdashes && char 15 of serialnumberwithdashesif it 竕  "- - -" thenreturn "ERROR!"end if--CHECK FOR UNQUALIFIED LETTERSrepeat with x=length(serialnumberwithdashes) down to 1get char x of serialnumberwithdashesif it is in "0123456789abcdefghjkmnpqrtuwxy-" thenif it 竕  "-" thenput it before serialnumberend ifelsereturn "ERROR!"end ifend repeat--CHECK FOR LENGTHif length(serialnumber) <> 16 thenreturn "ERROR!"end if--GET THE LENGTH OF SEED & NUMBER OF CHECKSput thirtyToTen(char 1 of serialnumber) into holding1put thirtyToTen(last char of serialnumber) into holding2delete char 1 of serialnumberdelete last char of serialnumberif (holding1 mod 2)=(holding2 mod 2) thenput holding1 into numberofchecksencryptedput holding2 into lengthofseedelseput holding1 into lengthofseedput holding2 into numberofchecksencryptedend if--GET THE CHECKSput trunc(numberofchecksencrypted / 3) into numberofchecksput (numberofchecksencrypted mod 3) into extraencryptorput length(serialnumber) - numberofchecks into lengthserialwithoutchecksput trunc( lengthserialwithoutchecks /3) * extraencryptor +1 into startcharput startchar + numberofchecks -1 into endcharput char startchar to endchar of serialnumber into thechecksdelete char startchar to endchar of serialnumber--GET THE SEEDput char 1 to lengthofseed of serialnumber into theseeddelete char 1 to lengthofseed of serialnumberput thirtytoTen(theseed) into theseedput thirtytoTen(serialnumber) into serialnumber--DIVIDE TO GET THE DATA BITSput ( serialnumber/theseed   ) into datanumber--ERROR CHECKING ON THE RESULTif "." is in datanumber thenreturn "ERROR!"else if datanumber < 810000 then-- No serial number will have less data than thisreturn "ERROR!"else if datanumber > 24299999 then--this allows for more than 23 million types of serial numberreturn "ERROR!"end ifput tentoThirty(datanumber) into thedatabitsreturn thedatabitsend unscramblefunction usernamebit usernamerepeat with x = length(username) down to 1if char x of username is " "then delete char x of usernameend repeatput trunc( length(username) /2) into stepperput char stepper of username into thebitif thebit is not in "123456789abcdefghjkmnpqrtuwxy"then put 8 into thebitreturn thebitend usernamebitfunction dateconverter inputif "/" is in input then--FOR CREATINGset the itemdelimiter to "/"put item 1 of input into themonthput item 2 of input into thedayput item 3 of input into theyearset the itemdelimiter to ","if theday=31 then put 30 into theday --CAN'T HOLD 31 DAYS, ONLY 30subtract 1 from theday  -- SO THE 1ST=0if theyear > 96then put 19 before theyearelse put 20 before theyearsubtract 1996 from theyear  --SO 1997=1put tentothirty(themonth) into themonthput tentothirty(theday) into thedayput tentothirty(theyear) into theyearreturn themonth&theday&theyearelse--FOR UNSCRAMBLINGput thirtytoten(char 1 of input) into themonthput thirtytoten(char 2 of input) + 1 into thedayput thirtytoten(char 3 of input) into theyearadd 1996 to theyearreturn themonth&"/"& theday &"/"& theyearend ifend dateconverterfunction thirtytoten dataput 0 into myIntput 1 into baserepeat with x=the number of chars in data down to 1get offset(char x of data,"123456789abcdefghjkmnpqrtuwxy")add it * base to myIntmultiply base by 30end repeatreturn myIntend thirtytotenfunction tenToThirty dataput "" into outputrepeat with x=1 to 47if 30^(x+1) > data then exit repeatend repeatput x into highestif (30^(highest+1)) < data thenbeepreturn "ERROR"end ifput data into theAmountrepeat with y=highest down to 0put trunc(theAmount/ (30^y) ) &"," after outputput theAmount mod (30^y) into theAmountend repeatdelete last char of outputput "" into newoutputrepeat with x=1 to the number of items in outputget item x of outputif it is 0 and x > 1then put "0" after newoutputelse put char it of "123456789abcdefghjkmnpqrtuwxy" after newoutputend repeatreturn newoutputend tenToThirty</script>
  17.     <background id="2275" file="background_2275.xml" name="" />
  18.     <card id="2320" file="card_2320.xml" marked="false" name="" owner="2275" />
  19. </stack>
  20.